package NowCoder.JavaSE.String;
import java.util.*;

/**
 *
 * WY18 统计回文
 * 入门  通过率：30.73%  时间限制：1秒  空间限制：32M
 * 知识点 字符串 模拟 穷举
 * warning 校招时部分企业笔试将禁止编程题跳出页面，为提前适应，练习时请使用在线自测，而非本地IDE。
 * 描述
 * “回文串”是一个正读和反读都一样的字符串，比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串，生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求，帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
 * 例如：
 * A = “aba”，B = “b”。这里有4种把B插入A的办法：
 * * 在A的第一个字母之前: "baba" 不是回文
 * * 在第一个字母‘a’之后: "abba" 是回文
 * * 在字母‘b’之后: "abba" 是回文
 * * 在第二个字母'a'之后 "abab" 不是回文
 * 所以满足条件的答案为2
 * 输入描述：
 * 每组输入数据共两行。 第一行为字符串A 第二行为字符串B 字符串长度均小于100且只包含小写字母
 * 输出描述：
 * 输出一个数字，表示把字符串B插入字符串A之后构成一个回文串的方法数
 *
 * 示例1
 * 输入：
 * aba
 * b
 * 输出：
 * 2
 * https://www.nowcoder.com/practice/9d1559511b3849deaa71b576fa7009dc?tpId=122&tqId=33664&ru=/exam/oj
 */
public class 统计回文_WY18 {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()){
            String A = scanner.nextLine();
            String B = scanner.nextLine();

            int sizeOfA = A.toCharArray().length;
            int num = 0;
            for(int i = 0;i <= sizeOfA;i++){
                // System.out.println(i);
                String AandB = insertString(A,B,i);
                if(isEcho(AandB)){
                    num++;
                }
            }

            System.out.println(num);
        }
    }

    //将字符串B插入A中，首先需要提供两个字符串，其次需要提供插入位置
    public static String insertString(String A,String B,int index){
        if(A == null || B == null){
            return A != null ? A : B;
        }

        //因为插入位置为index，所以当插入位置为 0 时，则截取[0,0)的 A 加上 B 加上 [0,末尾]
        return A.substring(0,index) + B + A.substring(index);
    }

    //写一个判断字符串，判断他是否是回文串
    public static boolean isEcho(String str){
        if(str == null){
            return false;
        }
//         System.out.println(str);
        char[] arr = str.toCharArray();
        int size = arr.length;
//         System.out.println(size);
        int leftIdx = 0;
        int rightIdx = size - 1;

        while(leftIdx < rightIdx){
            if(leftIdx < rightIdx && arr[leftIdx] != arr[rightIdx]){
                // System.out.println(str);
                return false;
            }
            leftIdx++;
            rightIdx--;
        }

        return true;
    }
}
